#pragma once

#ifndef QCEFCONFIG_H
#define QCEFCONFIG_H

#include <string>
#include <unordered_map>

#include "QCefDebug.h"

class QCefConfig
{
public:
    inline static QCefConfig* instance() { return ms_instance; }

protected:
    static QCefConfig* ms_instance;   //

public:
    typedef std::unordered_map<std::string, std::string> ArgsMap;

public:
    QCefConfig();
    ~QCefConfig();

public:
    ArgsMap & getArgs() { return m_args; }

public:
    void addCommandLineSwitch(const std::string & key);
    void addCommandLineSwitchWithValue(const std::string& key, const std::string& value);    
    int  delCommandLineSwitch(const std::string& key);    
    void clearCommandLineSwitch();

protected:
    ArgsMap     m_args;

protected:
    int init();
};

#endif // QCEFCONFIG_H
